1. Field of the Invention
The present invention relates generally to telecommunications services. More particularly, the present invention relates to Dynamic Message Addressing capabilities of an SS7 Subsystem in connection with Short Message Service (SMS) message routing, processing, and delivery infrastructure that enables mobile carriers to exchange text and data messages across all carriers, across all wireless protocols, and around the world.
The following acronyms are used throughout this description.
TermMeaningANSIAmerican National Standards InstituteBIBBackward Indicator NumberBSBase StationBSNBackward Sequence NumberCCITTConsultative Committee on InternationalTelegraphy and TelephonyCCSCommon Channel SignalingCDMACode Division Multiple AccessCMSDBCall Management Services DatabaseCRCCyclic Redundancy CheckDNDirectory NumberDPCDestination Point CodeE.164ITU international telephone numbering planrecommendationEIAElectronic Industry AssociationESNElectronic Serial NumberFCSFrame Check SequenceFIBForward Indicator BitFISUFill-In Signal UnitFSNForward Sequence NumberGMSCGateway MSCGSMGlobal System for Mobile CommunicationGTGlobal TitleGTTGlobal Title TranslationHLRHome Location RegisterICVInter-Carrier VendorIMSIInternational Mobile Station IdentityINIdentification NumberIPInternet ProtocolISOInternational Standards OrganizationISUPISDN User PartITUInternational Telecommunication UnionIWMSCInterworking MSCLILength IndicatorLSSULink Status Signal UnitMAPMobile Application PartMDNMobile Directory NumberMINMobile Identification NumberMOMobile OriginatedMSMobile SubscriberMSCMobile Switching CenterMSISDNMobile Station ISDN NumberMSUMessage Signal UnitMTMobile TerminatedMTPMessage Transfer PartNANPNorth American Numbering PlanNPDBNumber Portability Database
2. Background of the Invention
SS7 concerns itself with the signaling component of the initiation, management, and termination of telecommunication services, including point-to-point telephone calls.
In a telephony context, “signaling” means the passing, from one point to another, of information and instructions relevant to the setting up or supervision of a telephone call.
To initiate a call, a telephone subscriber lifts the handset off its rest, which, in American English, is commonly referred to ‘going off hook.’ This off-hook state is a signal to the central office or “exchange” to be ready to receive the number of the called subscriber. As soon as appropriate receiving equipment has been connected to the line, the exchange signals dial tone to the calling subscriber who then dials the wanted number. The subscriber, in due course, receives advice from the exchange about the status of the call, namely, a ringing signal (indicating that the wanted line is being rung), an engaged or busy tone signal (indicating that the wanted line is already busy with another call), an equipment busy tone signal (indicating congestion somewhere between the called exchanged and the calling line), or some other specialized tone, or pre-recorded message.
These are the signals and tones with which the telephone subscribers themselves are concerned. Telephone signaling is however also concerned with the signaling of information between exchanges. See, generally, Graham Langley, Telecommunications Primer (2nd Edition), Pitman Publishing, London, 1986.
More specifically, SS7 is what runs public wireless and wireline networks. It is the communications network for the communications network, that includes both a suite of protocols as well as an architecture.
When a user picks up the telephone in a home, or one connected to, e.g., a company's private branch exchange (PBX), the telephone connects to a predetermined local telephone exchange. The exchange then routes the call using SS7 protocols over SS7 links. In seconds, SS7 can send a call around the world through all kinds of equipment. In case, for example, where the person being called has moved to a different state in the United States, SS7 will find out where. If the intended recipient is out and has voice-mail, SS7 will route the call to the mailbox, wherever it may be.
In addition, when one dials a mobile phone or sends a text message, the SS7 network finds out where in the world that mobile phone is and routes the call there, making sure the appropriate charges are logged. SS7 can also reroute a call when a mobile user roams into the domain of another switching center, or cut off a call when a prepaid service runs out of money.
In short, SS7 is a dedicated packet switching network that carries command and control information. It is separate and apart from the circuit switching network of the Public Switched Telephone Network (PSTN) that carries actual telephone calls. In effect, SS7 is a private, back-channel facility through which the different elements within a telecommunications environment (e.g., telephone switches) may, as an example:                Exchange critical information (such as SMS messages, call routing data, etc.), or        Manage the allocation and de-allocation of system resources (e.g., actual voice circuits) during the creation, utilization, and destruction of telephone call delivery paths through the PSTN.        
As summarized on a website belonging to Cisco (San Jose, Calif.), in the mid-1960s, the CCITT (now the ITU) developed a digital signaling standard called Signaling System #6. SS6 was based on a packet-switched, proprietary data network. SS6 used 2.4 Kbps data links to send packets of data to distant switches to request services. This was the first use of packet switching in the PSTN. SS6 packets consisted of 12 signal units of 28 bits each placed into a data block.
SS7 began deployment in 1983, and gradually phased out SS6. It was initially used only in the interoffice network (from central office to central office), but has gradually expanded and is now deployed in local central offices as well. SS7 provides a global standard for call setup, routing, and control.
The first use of SS7 was not for call setup and teardown, but rather for accessing databases. Toll free “800” numbers provided a problem for switches in that they could no longer route based on area code. A second “real number” for each 800 number needed to be placed in a centralized database which multiple central offices could access.
An SS7 network consists of an interconnected set of elements or components. The elements within an SS7 network are referred to as Signaling Points (SPs). Each SP is assigned its own unique Point Code (PC) that serves as an address within the SS7 network which other SPs may employ when dispatching messages. An SS7 PC may be thought of as being similar to an Internet Protocol (IP) address on the Internet. PCs are carried within all of the messages that travel through an SS7 network to identity the sender and the recipient of a message—the PC of the sender of a message is referred to as the Origination PC (OPC) and the PC of the recipient of a message is referred to as the Destination PC (DPC).
In the United States an American National Standards Institute (ANSI) version of SS7 is utilized and a PC is a 24-bit value that can be expressed in the form:                N.C.Mwhere N is an 8-bit value that identifies a Network component (and may contain a value in the range 0 . . . 255 [inclusive]), C is an 8-bit value that identifies a Cluster component (and may contain a value in the range 0 . . . 255 [inclusive]), and M is an 8-identifies bit value that identifies a Member component (and may contain a value in the range 0 . . . 255 [inclusive]). Using this scheme, a total of 16,644,864 PCs are available for assignment:        
NetworkUsage0Not Used1Cluster values 1, . . . 255 assigned as ‘quasi network’codes to small entities2Cluster values 1, . . . 255 assigned as ‘quasi network’codes to small entities3Cluster values 1, . . . 255 assigned as ‘quasi network’codes to small entities4Cluster values 1, . . . 255 assigned as ‘quasi network’codes to small entities5Cluster values 1, . . . 255 and Member values (0, . . . 255)assigned as blocks to individual entities6Available for complete assignment...254Available for complete assignment255Reserved For Future Usewhere network values 1 through 5 contribute a total of 326,400 possible values (5 Network values*255 Cluster values*256 Member values=326,400 values) and network values 6 through 254 contribute a total of 16,318,464 values (249 Network values*256 Cluster values*256 Member values=16,318,464 values).
As an example, the ANSI SS7 PC 2.16.3 could be represented in binary as 00000010 00010000 00000011 or as the decimal value 135171.
In parts of Europe an International Telecommunication Union (ITU) version of SS7 is utilized and a PC is a 14-bit value that can be expressed in the form:                Z.A.Mwhere Z is a 3-bit value that identifies a Zone component (and may contain a value in the range 0 . . . 7 [inclusive]), A is an 8-bit value that identifies an Area or Network component (and may contain a value in the range 0 . . . 255 [inclusive]), and M is a 3-bit value that identifies a Member component (and may contain a value in the range 0 . . . 7 [inclusive]).        
As an example, the ITU SS7 PC 2.16.3 could be represented in binary as 010 00010000 011 or as the decimal value 4227.
In other portions of the world, still other versions of SS7 are utilized, and as a consequence, the local PC size and PC structure is altogether different—e.g., in Japan, PCs are 16-bit values.
There are three types of SS7 SPs: Service (or Signal) Switching Point (SSP), Service (or Signal) Control Point (SCP), and Signal Transfer Point (STP).
An SSP is basically an end-point within an SS7 environment and is typically some type of switching facility, for example a local exchange or a central office. An SSP is connected to an STP by one or more SS7 Access (A) Links. In topology diagrams, an SSP is typically depicted or represented using the symbol shown in FIG. 1.
An SCP typically comprises one or more database environments (e.g., a Call Management Services Database [CMSDB] for translating toll-free numbers, a Number Portability Database [NPDB] for translating ported numbers, etc.) and the associated application software. Each of the database environments that is hosted by an SCP is identified by a unique Subsystem Number (SSN). Thus one may address a message to a specific database on a specific SCP using the combination of the SCP's PC and the appropriate SSN. The combination of an SCP PC and an SSN may be thought of as being functionally analogous to the combination of an IP address and a port number—i.e., the combination uniquely identifies a specific end-point entity. An SCP is connected to an STP by one or more SS7 Access (A) Links. In topology diagrams, an SCP is typically depicted or represented using the symbol shown in FIG. 2.
An STP is, principally, a router, accepting incoming messages and immediately dispatching them to their designated destination PC. There are different classes or levels of STPs, including the National STP (which is capable of routing messages only to other SPs that understand its specific version [ANSI, ITU, etc.] of SS7) and the Gateway or International STP (which is capable of performing the necessary conversion operations to bridge the protocol ‘gap’ between different versions of SS7). As described above, ANSI and ITU PCs are quite different and one of the fundamental services that a Gateway or International STP offers is PC mapping and conversion. Additionally, an STP may optionally support Global Title Translation (GTT), a facility through which the address (i.e., a PC and a SSN) of the appropriate target SCP is dynamically derived from data tables that are stored locally on the STP and a Global Title (GT), an alias value (e.g., a mobile telephone number, a toll-free telephone number, etc.) that is contained in an incoming message. STPs are always deployed in mated pairs. An STP is connected to its mate by a set of SS7 Cross (C) links. A set of mated STPs are connected to another set of mated STPs by a set of SS7 Bridge (B) links. In topology diagrams, an STP is typically depicted or represented using the symbol shown in FIG. 3.
FIG. 4 illustrates a hypothetical (albeit exceedingly simple) ANSI SS7 network. In this diagram, two pairs of mated STPs (at PCs 1.1.8/1.1.9 and 2.1.8/2.1.9) support eight SSPs (at PCs 1.1.2, 1.1.3, 1.1.4, 1.1.5, 2.1.2, 2.1.3, 2.1.4, and 2.1.5) and two SCPs (at PCs 1.1.1 and 2.1.1). Message delivery routes would be defined between all of the different SPs (e.g., a message delivery route exists from the SP at PC 1.1.2 to the SP at PC 1.1.8, a message delivery route exists from the SP at PC 1.1.2 to the SP at PC 1.1.9, etc.), published, and for management purposes aggregated into routesets. Utilizing the published or advertised message delivery paths, the SPs within the network are thus able to properly direct all of the messages that must be exchanged between the SPs.
A four-level SS7 protocol stack that follows the layering concept of the Open Systems Interconnection (OSI) seven-layer reference model as defined by the International Standards Organization (ISO) supports the exchange of messages between SPs within an SS7 environment. With reference to FIG. 5, the Message Transfer Part (MTP) levels 1, 2, and 3 define various low-level messaging support (e.g., physical connections, message sequencing, error detection, message routing, etc.). The Signaling Connection Control Part (SCCP) provides connection-oriented and connectionless services and GTT. The Transaction Capabilities Applications Part (TCAP) supports the exchange of application-specific messages (e.g., a database query issued to and a response returned from an SCP). There are three distinct types of messages or Signal Units (SUs) that transit an SS7 environment—Fill-In Signal Units (FISUs), Link Status Signal Units (LSSUs), and Message Signal Units (MSUs). FISUs and LISUs convey heartbeat and other status information. MSUs are the real workhorse of SS7 and convey all of the call control information, database query and response information, SMS messages, etc. An MSU may be depicted as shown in FIG. 6.
The Frame Check Sequence (FCS) FCS contains a Cyclic Redundancy Check (CRC) value that is utilized to detect and, if possible, correct message transmission errors. The Signaling Information Field (SIF) contains higher-level (e.g., SCCP, TCAP, etc.) signaling information and a Routing Label (RL) comprising the OPC and DPC of the message. The Service Information Octet (SIO) identifies the nature of the MSU and the higher-level (e.g., SCCP, TCAP, etc.) ‘user’ to which the contents of the SIF should be delivered for decoding and processing. The Length Indicator (LI) identifies the type of the SU. The contents of the Forward Indicator Bit (FIB), Forward Sequence Number (FSN), Backward Indicator Bit (BIB), and Backward Sequence Number (BSN) are utilized for sequencing, acknowledgement, and error recovery purposes. The Flag field contains the static value 01111110 and identifies the end of a MSU.
The SIF is effectively the payload of the MSU. It carries the higher-level (e.g., SCCP, ISUP, etc.) signaling information and contains, amongst other fields, the RL. An RL identifies principally the PC of the SP that originated the MSU (i.e., the OPC) and the PC of the intended recipient SP of the MSU (i.e., the DPC).
With this basic understanding of SS7 now established, briefly described next is SMS and the utilization of SS7 within an SMS infrastructure.
Publications from various of the worldwide authoritative bodies describe the organization and operation of wireless telecommunications environments and services or features within those environments such as SMS. For example, for the Global System for Mobile communication (GSM) environment the Technical Specifications (TSs) are maintained by the 3rd Generation Partnership Project (http://www.3gpp.org), and numerous volumes are available in the popular press (including, amongst others, Michel Mouly and Marie-Bernadette Pautet, The GSM System For Mobile Communications, Europe Media Duplication S.A., 1993).
Within a (hypothetical) wireless telecommunications environment like that shown in FIG. 7, one typically has some number of Mobile Subscribers (MSs) 70. An example of a MS 70 would be a cellular telephone, which in effect is a portable radio transmitter/receiver. An MS is assigned (at least) two identifying values—a public Directory Number (DN) (the advertised telephone number, typically E.164-compliant, that individuals may dial to reach the MS) and a private Identification Number (IN) (a behind-the-scenes number that is utilized during call processing, routing, etc. operations). Depending upon the MS′ technology (GSM, non-GSM such as Code Division Multiple Access [CDMA]) the DN and the IN are ascribed the following designations:
TechnologyValueDesignationDescriptionGSMDNMSISDNMobile Station ISDNINIMSIInternational MobileSubscriber IdentityNon-GSMDNMDNMobile Directory NumberINMINMobile Identification Number
A MS communicates with a Base Station (BS), each of which consists of a radio antenna and supporting systems. The coverage area that a BS supplies is commonly referred to as a ‘cell,’ several of which are identified by 72a-72d. By strategically distributing BSs a wireless telecommunications service provider can ‘join together’ a group of cells to provide coverage for incrementally larger contiguous areas. One or more BSs are connected by land lines to a Mobile Switching Center (MSC) 73, a specialized telephone switch that serves as an entry/exit point for:                The carrier's SS7 environment 75        The PSTN 76thus facilitating the passing of traffic between the wireless environment and the wireline environment.        
As a MS 70 roams (i.e., as it moves from one coverage area to another) the wireless telecommunications service provider's back-end systems (HLR 78 and VLR 79) automatically keep track of the location of the MS—so that calls that are originated from the MS 70 may be efficiently processed and calls that are terminated to the MS 70 may be properly delivered—through a carefully choreographed exchange of SS7 messages. To support this ‘mobility management’ capability critical information is maintained in two different database environments:                1) Home Location Register (HLR) 78. At a logical level there is one HLR 78 within each carrier's environment; at a physical level this facility may be implemented as a series of interconnected database environments. When a carrier activates service for a MS 70 an entry is made in this database. The database entry captures, for example, the MS′ hidden Electronic Serial Number (ESN), the MS′ Identification Number (the private number that is utilized behind the scenes during actual call processing and routing operations), the MS′ DN (the public telephone number that individuals may dial to reach the MS), the identifier of the VLR for the current location of the MS (so that calls may be delivered to the MS), etc.        2) Visitor Location Register (VLR) 79. As a MS 70 roams a temporary entry is created in the VLR in the MSC that services the cell (i.e., the BS or cell 72a-72d) within which the MS 70 currently resides. Amongst other things, the database entry captures the temporary DN that is assigned to the MS 70 for purposes of call processing for the period of time that the MS is active in the cell.        
The various specification documents that define SMS identify several new (SMS-specific) network elements, as is well known in the art. In brief, at a very high level, and in stylized form, those network elements may be summarized as shown in FIG. 8.
One or more Short Message Entities (SMEs) 80a, 80b, 80c send SMS messages to and receive SMS messages from a Short Message Service Center (SMSC or sometimes SC) 82. The SMSC is responsible for, amongst other things, relaying and, if necessary, temporarily storing SMS messages.
An SMS Gateway MSC (SMS-GMSC) 84 capability, possibly offered as a service by a suitably-equipped MSC, accepts SMS messages from a SMSC 82, appropriately interrogates HLR 78 to obtain routing information, and passes SMS messages on to the identified MSC 73.
An SMS Interworking MSC (SMS-IWMSC) 86 capability, possibly offered as a service by a suitably-equipped MSC, receives SMS messages from a MSC 73 and submits SMS messages to the identified SMSC 82.
As noted previously, the coordinated exchange of a series of well-structured SS7 messages is necessary to support the roaming of a MS 70. For example, such messaging is necessary to support the registration of a MS 70 within a new VLR 79, the updating of the ‘current VLR’ field of a MS′ record in the HLR, the deregistration of a MS within an old VLR, etc. In CDMA-based wireless environments the TIA/EIA 41 (or IS-41D or ANSI-41D) Mobile Application Part (MAP) extensions to SS7 are typically utilized for this activity; in GSM wireless environments the GSM MAP extensions to SS7 are typically utilized for this activity. The TIA/EIA 41 MAP extensions and the GSM MAP extensions sit atop the TCAP layer of the SS7 protocol stack.
Thus, SS7 can be considered the ‘glue’ that ties together all of the pieces of the puzzle. By leveraging features of SS7, the present invention provides a methodology by which an inter-carrier vendor can customize certain messaging processes.